home *** CD-ROM | disk | FTP | other *** search
/ Practical Internet 2002 February / Practical Internet February 2002.iso / pc / Software / Browsing / httrack-3.09e2.exe / {app} / src_win / WinHTTrack / about.cpp next >
Encoding:
C/C++ Source or Header  |  2001-02-03  |  6.7 KB  |  292 lines

  1. // about.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "Shell.h"
  6. #include "about.h"
  7. //#include "about_sh.h"
  8.  
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14.  
  15. extern HICON httrack_icon;
  16. extern CString _HTTRACK_VERSION;
  17.  
  18. extern int LANG_T(int);
  19. // Helper
  20. extern LaunchHelp* HtsHelper;
  21.  
  22. /////////////////////////////////////////////////////////////////////////////
  23. // Cabout dialog
  24.  
  25.  
  26. Cabout::Cabout(CWnd* pParent /*=NULL*/)
  27.     : CDialog(Cabout::IDD, pParent)
  28. {
  29.     //{{AFX_DATA_INIT(Cabout)
  30.     m_infover = _T("");
  31.     m_lang = -1;
  32.     //}}AFX_DATA_INIT
  33. }
  34.  
  35.  
  36. void Cabout::DoDataExchange(CDataExchange* pDX)
  37. {
  38.     CDialog::DoDataExchange(pDX);
  39.     //{{AFX_DATA_MAP(Cabout)
  40.     DDX_Control(pDX, IDC_lang, m_ctl_lang);
  41.     DDX_Text(pDX, IDC_INFOVER, m_infover);
  42.     DDX_CBIndex(pDX, IDC_lang, m_lang);
  43.     //}}AFX_DATA_MAP
  44. }
  45.  
  46.  
  47. BEGIN_MESSAGE_MAP(Cabout, CDialog)
  48.     //{{AFX_MSG_MAP(Cabout)
  49.     ON_CBN_SELCHANGE(IDC_lang, OnSelchangelang)
  50.     ON_WM_HELPINFO()
  51.     ON_WM_LBUTTONDOWN()
  52.     ON_WM_MOUSEMOVE()
  53.     //}}AFX_MSG_MAP
  54.   ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify )
  55.   ON_COMMAND(ID_HELP_FINDER,OnHelpInfo2)
  56.   ON_COMMAND(ID_HELP,OnHelpInfo2)
  57.     ON_COMMAND(ID_DEFAULT_HELP,OnHelpInfo2)
  58. END_MESSAGE_MAP()
  59.  
  60. /////////////////////////////////////////////////////////////////////////////
  61. // Cabout message handlers
  62.  
  63. BOOL Cabout::OnInitDialog() 
  64. {
  65.   //m_lang=LANG_T(-1);    // langue?
  66.   CDialog::OnInitDialog();
  67.  
  68.   m_ctl_lang.ResetContent();
  69.   {
  70.     char lang_str[1024];
  71.     //int old_lang=LANG_T(-1);
  72.     int i=0;
  73.     int curr_lng=LANG_T(-1);
  74.     QLANG_T(0);
  75.     strcpy(lang_str,"LANGUAGE_NAME");
  76.     LANG_LOAD(lang_str);    // 0 english 1 franτais..
  77.     while(strlen(lang_str)) {
  78.       m_ctl_lang.AddString(lang_str);
  79.       i++;
  80.       QLANG_T(i);
  81.       strcpy(lang_str,"LANGUAGE_NAME");
  82.       LANG_LOAD(lang_str);    // 0 english 1 franτais..
  83.     }
  84.     QLANG_T(curr_lng);
  85.     //LANG_T(min(old_lang,i-1));
  86.   }
  87.  
  88.   /* sel */
  89.   int i;
  90.   int max=m_ctl_lang.GetCount();
  91.   m_ctl_lang.SetCurSel(-1);
  92.   for(i=0;i<max;i++) {
  93.     CString st;
  94.     m_ctl_lang.GetLBText(i,st);
  95.     if (strcmp(st,LANGUAGE_NAME)==0) {
  96.       m_ctl_lang.SetCurSel(i);
  97.     }
  98.   }
  99.   
  100.   EnableToolTips(true);     // TOOL TIPS
  101.   setlang();
  102.   SetIcon(httrack_icon,false);
  103.   SetIcon(httrack_icon,true);  
  104.  
  105.   SetForegroundWindow();   // yop en premier plan!
  106.  
  107.     return TRUE;  // return TRUE unless you set the focus to a control
  108.                   // EXCEPTION: OCX Property Pages should return FALSE
  109. }
  110.  
  111. void Cabout::setlang() {
  112.   CString info = "WinHTTrack Website Copier ";
  113.   info+= _HTTRACK_VERSION;
  114.   info+=LANG(LANG_K1);
  115.   info+="\r\n\r\n";
  116.   info+=LANG_K3;
  117.   info+=" :\r\n";
  118.   info+=HTTRACK_WEB;
  119.   SetDlgItemText(IDC_INFOVER,info);
  120.   //
  121.   SetWindowText(LANG_K2);
  122.   //SetDlgItemText(IDC_visit,LANG_K3);
  123. }
  124.  
  125. void Cabout::OnOK() 
  126. {
  127.   /*
  128.   DWORD a;
  129.   a=m_ctl_hot.GetHotKey();
  130.   int vcc=LOWORD(a);
  131.   int mod=HIWORD(a);
  132.   */
  133.     CDialog::OnOK();
  134. }
  135.  
  136. void Cabout::OnSelchangelang() 
  137. {
  138.   int r;
  139.   int old_lang=LANG_T(-1);
  140.   r = m_ctl_lang.GetCurSel();
  141.   if (r!=CB_ERR) {
  142.     CString st;
  143.     m_ctl_lang.GetLBText(r,st);
  144.     int i;
  145.     int max=m_ctl_lang.GetCount();
  146.     for(i=0;i<max;i++) {
  147.       char lang_str[1024];
  148.  
  149.       QLANG_T(i);
  150.       strcpy(lang_str,"LANGUAGE_NAME");
  151.       LANG_LOAD(lang_str);    // 0 english 1 franτais..
  152.  
  153.       //LANG_T(i);    // 0 english 1 franτais..
  154.       if (strcmp(st,lang_str)==0) {
  155.         LANG_T(i);
  156.         setlang();
  157.         if (i != old_lang)
  158.           AfxMessageBox("Please restart WinHTTrack so that your language preferences can be updated!");
  159.         return;
  160.       }
  161.     }
  162.     /* error */
  163.     LANG_T(0);    // 0 english 1 franτais..
  164.   }
  165.   setlang();
  166. }
  167.  
  168. // Appel aide
  169. BOOL Cabout::OnHelpInfo2() {
  170.   return OnHelpInfo(NULL);
  171. }
  172.  
  173. BOOL Cabout::OnHelpInfo(HELPINFO* dummy) 
  174. {
  175.   //return CDialog::OnHelpInfo(pHelpInfo);
  176.   HtsHelper->Help();
  177.   return true;
  178.   //AfxGetApp()->WinHelp(0,HELP_FINDER);    // Index du fichier Hlp
  179.   //return true;
  180. }
  181.  
  182.  
  183.  
  184.  
  185.  
  186. // ------------------------------------------------------------
  187. // TOOL TIPS
  188. //
  189. // ajouter dans le .cpp:
  190. // remplacer les deux Wid1:: par le nom de la classe::
  191. // dans la message map, ajouter
  192. // ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify )
  193. // dans initdialog ajouter
  194. // EnableToolTips(true);     // TOOL TIPS
  195. //
  196. // ajouter dans le .h:
  197. // char* GetTip(int id);
  198. // et en generated message map
  199. // afx_msg BOOL OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );
  200. BOOL Cabout::OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
  201. {
  202.   TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
  203.   UINT nID =pNMHDR->idFrom;
  204.   if (pTTT->uFlags & TTF_IDISHWND)
  205.   {
  206.     // idFrom is actually the HWND of the tool
  207.     nID = ::GetDlgCtrlID((HWND)nID);
  208.     if(nID)
  209.     {
  210.       char* st=GetTip(nID);
  211.       if (st != "") {
  212.         pTTT->lpszText = st;
  213.         pTTT->hinst = AfxGetResourceHandle();
  214.         return(TRUE);
  215.       }
  216.     }
  217.   }
  218.   return(FALSE);
  219. }
  220. char* Cabout::GetTip(int ID)
  221. {
  222.   switch(ID) {
  223.     case IDC_lang:   return LANG_U1; break;
  224.     case IDC_abouticon: return LANG_K3 ; break;
  225.     case IDCANCEL:   return LANG(LANG_TIPCANCEL); break;
  226.     case IDOK:       return LANG(LANG_TIPOK); break;
  227.   }
  228.   return "";
  229. }
  230. // TOOL TIPS
  231. // ------------------------------------------------------------
  232.  
  233. void Cabout::OnLButtonDown(UINT nFlags, CPoint point) 
  234. {
  235.   int id=0;
  236.   CWnd* w=ChildWindowFromPoint(point);
  237.   if (w)
  238.     id=w->GetDlgCtrlID();
  239.  
  240.   // Select
  241.   switch(id) {
  242.     case 0: break;
  243.     case IDC_abouticon:
  244.       this->ClientToScreen(&point);
  245.       w->ScreenToClient(&point);
  246.     if ((point.y>=100) && (point.y<=110) || (point.y<=80)) {
  247.       if (!ShellExecute(NULL,"open","http://www.httrack.com","","",SW_RESTORE)) {
  248.       }
  249.     } else if ((point.y>=120) && (point.y<=140)) {
  250.       if (!ShellExecute(NULL,"open","http://www.serianet.com","","",SW_RESTORE)) {
  251.       }
  252.     }
  253.     break;
  254.   }
  255.  
  256.   CDialog::OnLButtonDown(nFlags, point);
  257. }
  258.  
  259. void Cabout::OnMouseMove(UINT nFlags, CPoint point) 
  260. {
  261.   int id=0;
  262.   CWnd* w=ChildWindowFromPoint(point);
  263.   if (w)
  264.     id=w->GetDlgCtrlID();
  265.  
  266.   // Select
  267.   switch(id) {
  268.   case 0: break;
  269.   case IDC_abouticon:
  270.     this->ClientToScreen(&point);
  271.     w->ScreenToClient(&point);
  272.     HCURSOR curs=NULL;
  273.     if (
  274.          (point.y>=120) && (point.y<=140)
  275.       || (point.y<=80)
  276.       || (point.y>=100) && (point.y<=110)
  277.       ) {
  278.       curs=AfxGetApp()->LoadCursor(IDC_CURSWWW);
  279.     } else {
  280.       curs=AfxGetApp()->LoadStandardCursor(IDC_ARROW);
  281.     }
  282.     if (curs) {
  283.       //if (curs != currentCurs) {
  284.         SetCursor(curs);
  285.         // currentCurs=curs;
  286.       //}
  287.     }
  288.   }  
  289.  
  290.     CDialog::OnMouseMove(nFlags, point);
  291. }
  292.